package Entita;

import java.io.Serializable;
import java.sql.Date;
import java.util.ArrayList;
import java.util.Calendar;


import DAO.InterpretazioneDAO;

public class Paziente{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private int ID;
	private String titolo="";
	private String nome="";
	private String cognome="";
	private String luogoNascita="";
	private Date dataNascita;
	private String sesso=""; //0 Maschio - 1 Femmina
	private String titoloStudio="";
	private String professione="";
	private String indirizzoVia="";
	private String indirizzoCAP="";
	private String indirizzoCitta="";
	private String indirizzoProvincia="";
	private String indirizzoStato="";
	private String luogoEsame="";
	private String somministratore="";
	private String numeroTelefono="";
	private String email="";
	private String esaminatore="";
	private String inviante="";
	private String contesto="";
	private String atteggiamento="";
	private String tempoRaccolta="";
	private String tempoTotale="";
	private String altriTest="";
	private String luce="";
	private String serieTavole="";
	private String altriCasi="";
	private String integrazione="";
	private String metodo="";
	private String pinacoteca1="";
	private String pinacoteca2="";
	private String pinacoteca3="";
	private String pinacoteca4="";
	private String pinacoteca5="";
	private String pinacoteca6="";
	private String pinacoteca7="";
	private String pinacoteca8="";
	private String pinacoteca9="";
	private String pinacoteca10="";
	private String tavolaSimpatica="";
	private String tavolaAntipatica="";
	private String tavolaSimpaticaPerche="";
	private String tavolaAntipaticaPerche="";
	private String tavolaPreferita="";
	private String seriazionePositiva="";
	private String seriazioneNegativa="";
	private String colorePiuGradito="";
	private String coloreMenoGradito="";
	private String provaBandiera="";
	private int eta=0;
	
	
	private Date dataEsame=new Date(Calendar.getInstance().getTime().getTime());
	private ArrayList<Interpretazione> interpretazioni;
	
	public String getTitolo() {
		return titolo;
	}
	public void setTitolo(String titolo) {
		this.titolo = titolo;
	}
	public int getID() {
		return ID;
	}
	public void setID(int iD) {
		ID = iD;
	}
	public String getNome() {
		if (nome == null) return "";
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getCognome() {
		if (cognome == null) return "";
		return cognome;
	}
	public void setCognome(String cognome) {
		this.cognome = cognome;
	}
	public String getLuogoNascita() {
		if (luogoNascita == null) return "";
		return luogoNascita;
	}
	public void setLuogoNascita(String luogoNascita) {
		this.luogoNascita = luogoNascita;
	}
	public Date getDataNascita() {
		return dataNascita;
	}
	public void setDataNascita(Date dataNascita) {
		this.dataNascita = dataNascita;
	}
	public String getSesso() {
		return sesso;
	}
	public void setSesso(String sesso) {
		this.sesso = sesso;
	}
	public String getTitoloStudio() {
		if (titoloStudio == null) return "";
		return titoloStudio;
	}
	public void setTitoloStudio(String titoloStudio) {
		this.titoloStudio = titoloStudio;
	}
	public String getProfessione() {
		if (professione == null) return "";
		return professione;
	}
	public void setProfessione(String professione) {
		this.professione = professione;
	}
	public String getPinacoteca1() {
		if (pinacoteca1 == null) return "";
		return pinacoteca1;
	}
	public void setPinacoteca1(String pinacoteca1) {
		this.pinacoteca1 = pinacoteca1;
	}
	public String getPinacoteca2() {
		if (pinacoteca2 == null) return "";
		return pinacoteca2;
	}
	public void setPinacoteca2(String pinacoteca2) {
		this.pinacoteca2 = pinacoteca2;
	}
	public String getPinacoteca3() {
		if (pinacoteca3 == null) return "";
		return pinacoteca3;
	}
	public void setPinacoteca3(String pinacoteca3) {
		this.pinacoteca3 = pinacoteca3;
	}
	public String getPinacoteca4() {
		if (pinacoteca4 == null) return "";
		return pinacoteca4;
	}
	public void setPinacoteca4(String pinacoteca4) {
		this.pinacoteca4 = pinacoteca4;
	}
	public String getPinacoteca5() {
		if (pinacoteca5 == null) return "";
		return pinacoteca5;
	}
	public void setPinacoteca5(String pinacoteca5) {
		this.pinacoteca5 = pinacoteca5;
	}
	public String getPinacoteca6() {
		if (pinacoteca6 == null) return "";
		return pinacoteca6;
	}
	public void setPinacoteca6(String pinacoteca6) {
		this.pinacoteca6 = pinacoteca6;
	}
	public String getPinacoteca7() {
		if (pinacoteca7 == null) return "";
		return pinacoteca7;
	}
	public void setPinacoteca7(String pinacoteca7) {
		this.pinacoteca7 = pinacoteca7;
	}
	public String getPinacoteca8() {
		if (pinacoteca8 == null) return "";
		return pinacoteca8;
	}
	public void setPinacoteca8(String pinacoteca8) {
		this.pinacoteca8 = pinacoteca8;
	}
	public String getPinacoteca9() {
		if (pinacoteca9 == null) return "";
		return pinacoteca9;
	}
	public void setPinacoteca9(String pinacoteca9) {
		this.pinacoteca9 = pinacoteca9;
	}
	public String getPinacoteca10() {
		if (pinacoteca10 == null) return "";
		return pinacoteca10;
	}
	public void setPinacoteca10(String pinacoteca10) {
		this.pinacoteca10 = pinacoteca10;
	}
	public String getIndirizzoVia() {
		if (indirizzoVia == null) return "";
		return indirizzoVia;
	}
	public void setIndirizzoVia(String indirizzoVia) {
		this.indirizzoVia = indirizzoVia;
	}
	public String getIndirizzoCAP() {
		if (indirizzoCAP == null) return "";
		return indirizzoCAP;
	}
	public void setIndirizzoCAP(String indirizzoCAP) {
		this.indirizzoCAP = indirizzoCAP;
	}
	public String getIndirizzoCitta() {
		if (indirizzoCitta == null) return "";
		return indirizzoCitta;
	}
	public void setIndirizzoCitta(String indirizzoCitta) {
		this.indirizzoCitta = indirizzoCitta;
	}
	public String getIndirizzoProvincia() {
		if (indirizzoProvincia == null) return "";
		return indirizzoProvincia;
	}
	public void setIndirizzoProvincia(String indirizzoProvincia) {
		this.indirizzoProvincia = indirizzoProvincia;
	}
	public String getIndirizzoStato() {
		if (indirizzoStato == null) return "";
		return indirizzoStato;
	}
	public void setIndirizzoStato(String indirizzoStato) {
		this.indirizzoStato = indirizzoStato;
	}
	public String getLuogoEsame() {
		if (luogoEsame == null) return "";
		return luogoEsame;
	}
	public void setLuogoEsame(String luogoEsame) {
		this.luogoEsame = luogoEsame;
	}
	public Date getDataEsame() {
		return dataEsame;
	}
	public void setDataEsame(Date dataEsame) {
		this.dataEsame = dataEsame;
	}
	public ArrayList<Interpretazione> getInterpretazioni() {
		InterpretazioneDAO iDAO=new InterpretazioneDAO();
		return iDAO.getInterpretazioni(this);
//		return interpretazioni;
	}
	public void setInterpretazioni(ArrayList<Interpretazione> interpretazioni) {
		this.interpretazioni = interpretazioni;
	}
	public String getSomministratore() {
		if (somministratore == null) return "";
		return somministratore;
	}
	public void setSomministratore(String somministratore) {
		this.somministratore = somministratore;
	}
	public String getNumeroTelefono() {
		if (numeroTelefono == null) return "";
		return numeroTelefono;
	}
	public void setNumeroTelefono(String numeroTelefono) {
		this.numeroTelefono = numeroTelefono;
	}
	public String getEmail() {
		if (email == null) return "";
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getEsaminatore() {
		if (esaminatore == null) return "";
		return esaminatore;
	}
	public void setEsaminatore(String esaminatore) {
		this.esaminatore = esaminatore;
	}
	public int getEta() {
		if (eta==0 && dataEsame!=null && dataNascita!=null){
			long millis= getDataEsame().getTime()-getDataNascita().getTime();
			return (int)(millis/1000/3600/24/365);
		}else{
			return eta;
		}
	}
	public void setEta(int eta) {
		this.eta = eta;
	}
	public String getInviante() {
		if (inviante == null) return "";
		return inviante;
	}
	public void setInviante(String inviante) {
		this.inviante = inviante;
	}
	public String getContesto() {
		if (contesto == null) return "";
		return contesto;
	}
	public void setContesto(String contesto) {
		this.contesto = contesto;
	}
	public String getAtteggiamento() {
		if (atteggiamento == null) return "";
		return atteggiamento;
	}
	public void setAtteggiamento(String atteggiamento) {
		this.atteggiamento = atteggiamento;
	}
	public String getTempoRaccolta() {
		if (tempoRaccolta == null) return "";
		return tempoRaccolta;
	}
	public void setTempoRaccolta(String tempoRaccolta) {
		this.tempoRaccolta = tempoRaccolta;
	}
	public String getTempoTotale() {
		if (tempoTotale == null) return "";
		return tempoTotale;
	}
	public void setTempoTotale(String tempoTotale) {
		this.tempoTotale = tempoTotale;
	}
	public String getTavolaPreferita() {
		if (tavolaPreferita == null) return "";
		return tavolaPreferita;
	}
	public void setTavolaPreferita(String tavolaPreferita) {
		this.tavolaPreferita = tavolaPreferita;
	}
	public String getAltriTest() {
		if (altriTest == null) return "";
		return altriTest;
	}
	public void setAltriTest(String altriTest) {
		this.altriTest = altriTest;
	}
	public String getLuce() {
		if (luce == null) return "";
		return luce;
	}
	public void setLuce(String luce) {
		this.luce = luce;
	}
	public String getSerieTavole() {
		if (serieTavole == null) return "";
		return serieTavole;
	}
	public void setSerieTavole(String serieTavole) {
		this.serieTavole = serieTavole;
	}
	public String getAltriCasi() {
		if (altriCasi == null) return "";
		return altriCasi;
	}
	public void setAltriCasi(String altriCasi) {
		this.altriCasi = altriCasi;
	}
	public String getIntegrazione() {
		if (integrazione == null) return "";
		return integrazione;
	}
	public void setIntegrazione(String integrazione) {
		this.integrazione = integrazione;
	}
	public String getMetodo() {
		if (metodo == null) return "";
		return metodo;
	}
	public void setMetodo(String metodo) {
		this.metodo = metodo;
	}
	public String getTavolaSimpatica() {
		if (tavolaSimpatica == null) return "";
		return tavolaSimpatica;
	}
	public void setTavolaSimpatica(String tavolaSimpatica) {
		this.tavolaSimpatica = tavolaSimpatica;
	}
	public String getTavolaAntipatica() {
		if (tavolaAntipatica == null) return "";
		return tavolaAntipatica;
	}
	public void setTavolaAntipatica(String tavolaAntipatica) {
		this.tavolaAntipatica = tavolaAntipatica;
	}
	public String getTavolaSimpaticaPerche() {
		if (tavolaSimpaticaPerche == null) return "";
		return tavolaSimpaticaPerche;
	}
	public void setTavolaSimpaticaPerche(String tavolaSimpaticaPerche) {
		this.tavolaSimpaticaPerche = tavolaSimpaticaPerche;
	}
	public String getTavolaAntipaticaPerche() {
		if (tavolaAntipaticaPerche == null) return "";
		return tavolaAntipaticaPerche;
	}
	public void setTavolaAntipaticaPerche(String tavolaAntipaticaPerche) {
		this.tavolaAntipaticaPerche = tavolaAntipaticaPerche;
	}
	public String getSeriazionePositiva() {
		if (seriazionePositiva == null) return "";
		return seriazionePositiva;
	}
	public void setSeriazionePositiva(String seriazionePositiva) {
		this.seriazionePositiva = seriazionePositiva;
	}
	public String getSeriazioneNegativa() {
		if (seriazioneNegativa == null) return "";
		return seriazioneNegativa;
	}
	public void setSeriazioneNegativa(String seriazioneNegativa) {
		this.seriazioneNegativa = seriazioneNegativa;
	}
	public String getColorePiuGradito() {
		if (colorePiuGradito == null) return "";
		return colorePiuGradito;
	}
	public void setColorePiuGradito(String colorePiuGradito) {
		this.colorePiuGradito = colorePiuGradito;
	}
	public String getColoreMenoGradito() {
		if (coloreMenoGradito == null) return "";
		return coloreMenoGradito;
	}
	public void setColoreMenoGradito(String coloreMenoGradito) {
		this.coloreMenoGradito = coloreMenoGradito;
	}
	public String getProvaBandiera() {
		if (provaBandiera == null) return "";
		return provaBandiera;
	}
	public void setProvaBandiera(String provaBandiera) {
		this.provaBandiera = provaBandiera;
	}
	public PazienteArchivio getPazienteArchivio(){
		PazienteArchivio pazienteArchivio= new PazienteArchivio();
		pazienteArchivio.setID(ID);
		pazienteArchivio.setTitolo(titolo);
		return pazienteArchivio;
	}
	
	@Override
	   public String toString() {
 	   return this.titolo;
	}
	public String[] export() {
		String[] text={
			Integer.toString(ID),
			titolo,
			nome,
			cognome,
			luogoNascita,
			dataNascita.toString(),
			sesso, //0 Maschio - 1 Femmina
			titoloStudio,
			professione,
			indirizzoVia,
			indirizzoCAP,
			indirizzoCitta,
			indirizzoProvincia,
			indirizzoStato,
			luogoEsame,
			somministratore,
			numeroTelefono,
			email,
			esaminatore,
			inviante,
			contesto,
			atteggiamento,
			tempoRaccolta,
			tempoTotale,
			altriTest,
			luce,
			serieTavole,
			altriCasi,
			integrazione,
			metodo,
			pinacoteca1,
			pinacoteca2,
			pinacoteca3,
			pinacoteca4,
			pinacoteca5,
			pinacoteca6,
			pinacoteca7,
			pinacoteca8,
			pinacoteca9,
			pinacoteca10,
			tavolaSimpatica,
			tavolaAntipatica,
			tavolaSimpaticaPerche,
			tavolaAntipaticaPerche,
			tavolaPreferita,
			seriazionePositiva,
			seriazioneNegativa,
			colorePiuGradito,
			coloreMenoGradito,
			provaBandiera,
			Integer.toString(eta)};
		return text;
	}	
}



